// 文章管理发布模块
const db = require('../db/index')
const path = require('path')

// 发布新文章的处理函数
exports.addArticle = (req, res) => {
  // console.log(req);
  // console.log('--上面为文章的req，下面为文件位置');
  // console.log(req.file)
    // 手动判断是否上传了文章封面
    if (!req.file || req.file.fieldname !== 'cover_img') return res.cc('文章封面是必选参数！')
    // 处理文章的信息对象
    const articleInfo = {
    // 标题、内容、发布状态、所属分类的Id
    ...req.body,
    // 文章封面的存放路径
    cover_img: path.join('/uploads', req.file.filename),
    is_delete: 0,
    // 文章的发布时间
    pub_date: new Date(),
    // 文章作者的Id
    author_id: req.user.id,
  }
  // sql 语句
  const sql = `insert into ev_articles set ?`
  db.query(sql, articleInfo, (err, results) => {
    if (err) return res.cc(err)
    if (results.affectedRows !== 1) return res.cc('发布新文章失败！')
    res.cc('发布文章成功！', 0)
  })
    // res.send('文章发送ok')
}

// 获取文章列表
exports.getArticleList = (req, res) => {
  // 获取查询参数
  const { pagenum, pagesize, cate_id, state } = req.query;
  // 设置默认值
  const page = parseInt(pagenum) || 1;
  const limit = parseInt(pagesize) || 2;
  const offset = (page - 1) * limit;
  // 构建 SQL 查询条件
  // let sql = 'SELECT * FROM ev_articles WHERE 1 = 1';
  let sql = `select  * from ev_article_cate e1 join ev_articles e2 on e1.id = e2.cate_id where e1.author_id = ${req.user.id} `
  let sqlCount = `SELECT COUNT(*) AS total FROM ev_articles WHERE author_id = ${req.user.id}`;
  const params = [];
  // // 如果有分类 ID
  // if (cate_id) {
  //   sql += ' AND cate_id = ?';
  //   sqlCount += ' AND cate_id = ?';
  //   params.push(cate_id);
  // }
  // // 如果有状态
  // if (state) {
  //   sql += ' AND state = ?';
  //   sqlCount += ' AND state = ?';
  //   params.push(state);
  // }
  // 加入分页条件
  sql += ' LIMIT ? OFFSET ?';
  params.push(limit, offset);

  // 执行查询总条数的 SQL
  db.query(sqlCount, params, (err, countResult) => {
    if (err) return res.cc(err)

    const total = countResult[0].total;

    // 执行查询文章列表的 SQL
    db.query(sql, params, (err, result) => {
      if (err) return res.cc(err)
      // 返回文章列表和总条数
    console.log(result);
    res.send({
      status: 0,
      message: '获取文章分类列表成功！',
      data: result,
      total: total
  })  
    });
  });
} 


// 删除文章列表-根据id来删除
exports.deleteArticleList = (req, res) => {
  const sql = 'delete from ev_articles where Id = ?'
  db.query(sql, req.params.Id, (err, results) => {
    if(err) return res.cc(err)
    if(results.affectedRows !== 1)
     return res.cc('删除分类文章失败')
    res.cc('删除成功',0)
  })
}
